/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */
struct ListNode* middleNode(struct ListNode* head) {
    struct ListNode* slow, *fast;
    slow = fast = head;
    while(fast && fast->next){
        slow = slow->next;
        fast = fast->next;
        fast = fast->next;
    }
    return slow;
}
/*给你单链表的头结点head，请你找出并返回链表的中间结点。

如果有两个中间结点，则返回第二个中间结点。*/